package com.mccree.elasticsearch.service;

import java.util.List;

/**
 * @Author: MccRee
 * @Date: 2022/5/24 15:32
 */
public interface ElasticsearchService {
    /**
     * 保存数据(单个)
     * @param index 索引库
     * @param id id
     * @param t 要插入的数据
     * @param <T>
     */
    <T> void saveOne(String index,String id,T t);

    /**
     * 保存数据(单个)
     * @param index
     * @param t
     * @param <T>
     */
    <T> void saveOne(String index,T t);

    /**
     * 保存数据(批量)
     * @param index
     * @param data
     * @param <E>
     */
    <E> void bulkData(String index,List<E> data);

    /**
     * 查询数据(精准)
     * @param index
     * @param from
     * @param size
     * @param key
     * @param value
     * @param clazz
     * @param <E>
     * @return
     */
    <E> List<E> searchTerm(String index,int from,int size,String key,String value,Class<E> clazz);

    /**
     * 查询数据(模糊)
     * @param index
     * @param from
     * @param size
     * @param key
     * @param value
     * @param clazz
     * @param <E>
     * @return
     */
    <E> List<E> searchMatch(String index,int from,int size,String key,String value,Class<E> clazz);
}
